package _Banque._TUN;

import _Banque.*;
import _Tests.Tests;

//
//IUT de Nice / Departement informatique / Module APO-C++
//Annee 2008_2009 - Package _Banque
//
//Classe CompteEpargne - Tests unitaires de la methode remunerer
//                      (Cas nominaux)
//
//Auteur : T.Tran Van THoan - Q.Salmeron
//

public class T_CompteEpargne_N5 {
	
	public static void main (String args[]) throws  Throwable {
		
		Tests.Begin("_Banque.CompteEpargne", "1.5.0");
		
		Banque b = new Banque();
		
		   String adresse_1 = "Imm. Les Magnolias Bat. 2, 8 Bd Napoleon III - NICE (06000)";
		   //String adresse_2= "Villa Beau Sejour, 115 Av. de la Grande Armee - PARIS (75000)";

		   Titulaire dupuy = new Titulaire("DUPUY", "melanie", "1978/04/25", adresse_1);
		   //Titulaire durand = new Titulaire("Durand", "Paul", "1981/01/03",  adresse_2);
		   
		   Tests.Design("Controle du service remunerer", 3); {
		   
			   Tests.Case("Cas de l'absence d'operations anterieures"); {
				   CompteEpargne cpt = new CompteEpargne(b, dupuy, 0.05f);
				   
				   cpt.remunerer(_Banque.dateCourante());	
				   
				   Tests.Unit(0.f,  cpt.getSoldeCompte());
		            Tests.Unit(0,    cpt.getNombreOperations());
			   }
			   
			   Tests.Case("Cas du jour courant"); { 
			         CompteEpargne cpt = new CompteEpargne(b, dupuy, 0.05f);

			            cpt.executer('V', "Guichet 322455", 1100);  

			            cpt.remunerer(_Banque.dateCourante());

			            Tests.Unit(1100.f,  cpt.getSoldeCompte());
			            Tests.Unit(1,       cpt.getNombreOperations());
			         }
			   
			   Tests.Case("Cas du lendemain en milieu de mois"); {
			         CompteEpargne cpt = new CompteEpargne(b, dupuy, 0.05f);

			            cpt.executer('V', "Guichet 322455", 1000); 
			            
			            cpt.remunerer(_Banque.demain());

			            Tests.Unit(1000.f,  cpt.getSoldeCompte());
			            Tests.Unit(1,       cpt.getNombreOperations());
			         }
			   
			   Tests.Case("Cas du lendemain hors fin de mois"); {
			         CompteEpargne cpt = new CompteEpargne(b, dupuy, 0.05f);
			          
			            cpt.executer('V', "Guichet 322455", 1000);

			            cpt.remunerer("2012/12/15");

			            Tests.Unit(1000.f, cpt.getSoldeCompte());
			            Tests.Unit(1,            cpt.getNombreOperations());
			         }

			   Tests.Case("Cas du mois suivant"); {
			         CompteEpargne cpt = new CompteEpargne(b, dupuy, 0.05f);

			             cpt.executer('V', "Guichet 322455", 1000);
			            
			             cpt.remunerer(_Banque.debutMoisSuivant(_Banque.dateCourante()));

			            Tests.Unit(1004.166687f, cpt.getSoldeCompte());
			            Tests.Unit(2,            cpt.getNombreOperations());
			         }
			   
			   
			   
		   }
		   Tests.End();
	}

}
